T-SQL (Transact-SQL) SQL Server-এর এক্সটেনশন হিসেবে ব্যবহার করা হয় এবং এতে SQL-এর সাধারণ কন্ডিশনাল স্টেটমেন্টের পাশাপাশি কিছু অতিরিক্ত ফিচারও রয়েছে যা শর্ত ভিত্তিক লজিক পরিচালনা করতে সহায়তা করে। T-SQL-এ কন্ডিশনাল লজিক ব্যবহারের জন্য বিভিন্ন স্টেটমেন্ট রয়েছে, যেমন IF...ELSE, CASE, এবং WHILE লুপ। এই স্টেটমেন্টগুলি ডেটাবেসে ডেটা প্রক্রিয়াকরণ, সিদ্ধান্ত গ্রহণ, এবং লজিক্যাল ফ্লো পরিচালনা করতে ব্যবহৃত হয়।
নিচে T-SQL এর কন্ডিশনাল লজিক সম্পর্কিত কিছু গুরুত্বপূর্ণ স্টেটমেন্ট এবং তাদের ব্যবহার ব্যাখ্যা করা হলো।
১. IF...ELSE স্টেটমেন্ট
IF...ELSE স্টেটমেন্ট ব্যবহার করে T-SQL-এ শর্তভিত্তিক লজিক বাস্তবায়ন করা যায়। এটি এক বা একাধিক শর্তের উপর ভিত্তি করে বিভিন্ন এক্সপ্রেশন বা কোড চালায়।
ব্যবহার:
IF <condition>
-- condition সত্য হলে এই কোড ব্লকটি চালানো হবে
BEGIN
-- কোড
END
ELSE
-- condition মিথ্যা হলে এই কোড ব্লকটি চালানো হবে
BEGIN
-- কোড
END
উদাহরণ:
DECLARE @Age INT = 18;
IF @Age >= 18
PRINT 'Adult';
ELSE
PRINT 'Minor';
এটি চেক করবে যদি Age ১৮ বা তার বেশি হয়, তাহলে 'Adult' মুদ্রিত হবে, অন্যথায় 'Minor' মুদ্রিত হবে।
২. CASE স্টেটমেন্ট
CASE স্টেটমেন্ট ব্যবহার করে একাধিক শর্তের উপর ভিত্তি করে একাধিক মানের মধ্যে নির্বাচন করা যায়। এটি একটি IF...ELSE স্টেটমেন্টের চেয়ে আরও নমনীয় এবং সুবিধাজনক।
ব্যবহার:
SELECT
CASE
WHEN <condition1> THEN <result1>
WHEN <condition2> THEN <result2>
ELSE <default_result>
END AS Result
FROM <table_name>;
উদাহরণ:
DECLARE @Day INT = 3;
SELECT
CASE
WHEN @Day = 1 THEN 'Sunday'
WHEN @Day = 2 THEN 'Monday'
WHEN @Day = 3 THEN 'Tuesday'
ELSE 'Invalid day'
END AS DayName;
এটি DayName কলামে Tuesday ফিরিয়ে দিবে যদি @Day ৩ হয়।
৩. WHILE লুপ
WHILE লুপ ব্যবহার করে T-SQL-এ একটি শর্তের ভিত্তিতে কোডের একাধিক রাউন্ড চালানো যেতে পারে। এটি বিশেষভাবে তখন ব্যবহার হয় যখন আপনি একটি শর্ত পূরণ না হওয়া পর্যন্ত কোড পুনরায় চালাতে চান।
ব্যবহার:
WHILE <condition>
BEGIN
-- কোড
END
উদাহরণ:
DECLARE @Counter INT = 1;
WHILE @Counter <= 5
BEGIN
PRINT 'Counter value: ' + CAST(@Counter AS VARCHAR);
SET @Counter = @Counter + 1;
END
এটি 'Counter value: 1' থেকে 'Counter value: 5' পর্যন্ত প্রতিটি সংখ্যার জন্য মুদ্রিত করবে।
৪. IF...ELSE IF...ELSE স্টেটমেন্ট
IF...ELSE IF...ELSE স্টেটমেন্ট একটি শর্তবদ্ধ চেক করার জন্য ব্যবহৃত হয়, যেখানে একাধিক শর্তের মধ্যে কোনো একটি সঠিক হলে সংশ্লিষ্ট কোড এক্সিকিউট হবে।
ব্যবহার:
IF <condition1>
-- condition1 সত্য হলে কোড
ELSE IF <condition2>
-- condition2 সত্য হলে কোড
ELSE
-- অন্যথায় কোড
উদাহরণ:
DECLARE @Score INT = 85;
IF @Score >= 90
PRINT 'Grade A';
ELSE IF @Score >= 80
PRINT 'Grade B';
ELSE IF @Score >= 70
PRINT 'Grade C';
ELSE
PRINT 'Grade F';
এটি 'Grade B' মুদ্রিত করবে যদি @Score ৮০ বা তার বেশি এবং ৯০ এর কম হয়।
৫. BEGIN...END ব্লক
BEGIN...END ব্লক ব্যবহার করে একাধিক স্টেটমেন্ট একত্রে চালানো যায়, যা বিশেষত IF...ELSE, WHILE লুপ বা অন্যান্য শর্তমূলক লজিকের ক্ষেত্রে সহায়ক।
উদাহরণ:
DECLARE @Age INT = 20;
IF @Age >= 18
BEGIN
PRINT 'Adult';
PRINT 'Eligible to vote';
END
ELSE
BEGIN
PRINT 'Minor';
PRINT 'Not eligible to vote';
END
এখানে, @Age ১৮ বা তার বেশি হলে দুটি স্টেটমেন্ট একসাথে চালানো হবে।
৬. RETURN স্টেটমেন্ট
RETURN স্টেটমেন্টটি একটি ফাংশন বা স্টোরড প্রসিডিউর থেকে কোনো মান রিটার্ন করার জন্য ব্যবহৃত হয়। এটি একটি লজিক্যাল শর্তের ভিত্তিতে প্রোগ্রাম ফ্লো নিয়ন্ত্রণ করতে সাহায্য করে।
উদাহরণ:
CREATE FUNCTION CheckEligibility (@Age INT)
RETURNS VARCHAR(50)
AS
BEGIN
IF @Age >= 18
RETURN 'Eligible'
ELSE
RETURN 'Not Eligible'
END
এটি @Age এর ভিত্তিতে Eligible বা Not Eligible রিটার্ন করবে।
সারাংশ
T-SQL এ কন্ডিশনাল লজিক ব্যবহারের জন্য বেশ কিছু গুরুত্বপূর্ণ স্টেটমেন্ট রয়েছে, যেমন:
IF...ELSE: শর্তভিত্তিক সিদ্ধান্ত নেয়ার জন্য ব্যবহৃত।CASE: একাধিক শর্তের জন্য কাজ করার একটি পদ্ধতি।WHILE: একটি শর্ত পূর্ণ না হওয়া পর্যন্ত লুপ চালানোর জন্য।IF...ELSE IF...ELSE: একাধিক শর্ত যাচাই করার জন্য।
এই স্টেটমেন্টগুলো SQL Server-এ কার্যক্রম পরিচালনা করতে এবং জটিল লজিক বাস্তবায়ন করতে অত্যন্ত সহায়ক।
IF...ELSE স্টেটমেন্ট একটি কন্ট্রোল ফ্লো স্টেটমেন্ট যা T-SQL (Transact-SQL) এ শর্তাধীন লজিকাল ফ্লো পরিচালনা করতে ব্যবহৃত হয়। এটি কোনো শর্তের উপর ভিত্তি করে কোডের একটি নির্দিষ্ট অংশ কার্যকর করতে সাহায্য করে। যদি শর্ত সত্য হয়, তাহলে IF ব্লকের কোড এক্সিকিউট হবে, এবং যদি শর্ত মিথ্যা হয়, তাহলে ELSE ব্লকের কোড এক্সিকিউট হবে।
IF...ELSE সিনট্যাক্স
IF (condition)
BEGIN
-- কোড যা শর্ত সত্য হলে চলবে
END
ELSE
BEGIN
-- কোড যা শর্ত মিথ্যা হলে চলবে
END
- condition: এখানে শর্তটি হবে যে কোনো এক্সপ্রেশন যা সত্য (TRUE) অথবা মিথ্যা (FALSE) হতে পারে।
- BEGIN...END: একাধিক স্টেটমেন্ট একসাথে চলানোর জন্য BEGIN এবং END ব্লক ব্যবহার করা হয় (যদি একাধিক স্টেটমেন্ট থাকে)।
উদাহরণ ১: মৌলিক IF...ELSE স্টেটমেন্ট
ধরা যাক, আমরা একটি চেক করতে চাই যে একটি নাম্বার পজিটিভ কি না।
DECLARE @Number INT = 5;
IF @Number > 0
BEGIN
PRINT 'The number is positive.';
END
ELSE
BEGIN
PRINT 'The number is not positive.';
END
এখানে:
- যদি
@Number0-এর বেশি হয়, তাহলে IF ব্লকটি কার্যকর হবে এবং "The number is positive." প্রিন্ট হবে। - যদি
@Number0 বা এর নিচে থাকে, তাহলে ELSE ব্লকটি কার্যকর হবে এবং "The number is not positive." প্রিন্ট হবে।
উদাহরণ ২: একাধিক IF...ELSE স্টেটমেন্ট
ধরা যাক, আমরা একটি নির্দিষ্ট নাম্বার পরীক্ষা করতে চাই এবং তার ভিত্তিতে একটি বার্তা প্রিন্ট করতে চাই যে নাম্বারটি পজিটিভ, নেগেটিভ অথবা শূন্য।
DECLARE @Number INT = -5;
IF @Number > 0
BEGIN
PRINT 'The number is positive.';
END
ELSE IF @Number < 0
BEGIN
PRINT 'The number is negative.';
END
ELSE
BEGIN
PRINT 'The number is zero.';
END
এখানে:
- যদি
@Number0 এর চেয়ে বড় হয়, তাহলে "The number is positive." প্রিন্ট হবে। - যদি
@Number0 এর চেয়ে কম হয়, তাহলে "The number is negative." প্রিন্ট হবে। - যদি
@Number0 হয়, তাহলে "The number is zero." প্রিন্ট হবে।
উদাহরণ ৩: নেস্টেড IF...ELSE স্টেটমেন্ট
একটি শর্তের মধ্যে আরেকটি শর্ত ব্যবহার করতে চাইলে IF...ELSE নেস্টেড করা যায়।
DECLARE @Number INT = 10;
IF @Number >= 0
BEGIN
IF @Number == 0
BEGIN
PRINT 'The number is zero.';
END
ELSE
BEGIN
PRINT 'The number is positive.';
END
END
ELSE
BEGIN
PRINT 'The number is negative.';
END
এখানে:
- প্রথমে চেক করা হচ্ছে যে
@Number0 বা তার বেশি কি না। - এরপর যদি তা 0 হয়, তাহলে "The number is zero." প্রিন্ট হবে। আর যদি তা 0 এর বেশি হয়, "The number is positive." প্রিন্ট হবে।
- যদি প্রথম শর্তটি মিথ্যা হয়, তাহলে "The number is negative." প্রিন্ট হবে।
সারাংশ
IF...ELSE স্টেটমেন্ট T-SQL-এ শর্তাধীন লজিকের জন্য ব্যবহৃত হয়। এটি কোনো শর্তের উপর ভিত্তি করে বিভিন্ন কোড ব্লক এক্সিকিউট করতে সাহায্য করে। আপনি একাধিক IF...ELSE IF এবং ELSE ব্লক ব্যবহার করে জটিল শর্তাধীন লজিক তৈরি করতে পারেন।
SQL CASE স্টেটমেন্ট একটি শর্তাবলী বা কন্ডিশনাল লজিক প্রদান করে, যা SQL কুয়েরি বা স্টোরড প্রসিডিউরের মধ্যে শর্ত অনুযায়ী মান নির্ধারণ করতে ব্যবহৃত হয়। এটি IF...ELSE লজিকের মতো কাজ করে, তবে SQL এর মধ্যে এটি ব্যবহার করা হয়।
CASE স্টেটমেন্ট দুটি প্রকারে ব্যবহৃত হতে পারে:
- Simple CASE Expression: এক বা একাধিক মানের মধ্যে শর্ত পরীক্ষা করা।
- Searched CASE Expression: এক বা একাধিক শর্ত অনুযায়ী মান নির্বাচন করা।
১. Simple CASE Expression
এটি ব্যবহার করা হয় যখন আপনি একটি কলামের মানের ভিত্তিতে অন্য একটি মান নির্ধারণ করতে চান। এই ক্ষেত্রে, আপনার কাছে একটি নির্দিষ্ট কলামের মান থাকবে, এবং আপনি সেই মানের জন্য একটি শর্ত নির্ধারণ করবেন।
সিনট্যাক্স:
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result_default
END
উদাহরণ:
ধরা যাক, একটি Students টেবিল আছে যেখানে ছাত্রদের Grade (A, B, C, D) আছে এবং আমরা তাদের জন্য মান নির্ধারণ করতে চাই। উদাহরণস্বরূপ:
SELECT Name,
Grade,
CASE Grade
WHEN 'A' THEN 'Excellent'
WHEN 'B' THEN 'Good'
WHEN 'C' THEN 'Average'
ELSE 'Needs Improvement'
END AS Performance
FROM Students;
এখানে:
Gradeকলামের মানের ভিত্তিতেPerformanceকলামে ফলাফল দেওয়া হবে।- যদি
Grade'A' হয়, তাহলেPerformanceহবে 'Excellent' - যদি
Grade'B' হয়, তাহলেPerformanceহবে 'Good' - অন্যান্য মানের জন্য 'Needs Improvement' দেখাবে।
- যদি
২. Searched CASE Expression
এটি তখন ব্যবহার করা হয় যখন আপনি একাধিক শর্ত পরীক্ষা করতে চান এবং প্রতিটি শর্তের জন্য নির্দিষ্ট ফলাফল ফেরত দিতে চান।
সিনট্যাক্স:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result_default
END
উদাহরণ:
ধরা যাক, আপনি ছাত্রদের Age এবং Score পরীক্ষা করে তাদের ফলাফল নির্ধারণ করতে চান। উদাহরণস্বরূপ:
SELECT Name, Age, Score,
CASE
WHEN Age >= 18 AND Score >= 50 THEN 'Pass'
WHEN Age >= 18 AND Score < 50 THEN 'Fail'
WHEN Age < 18 AND Score >= 50 THEN 'Underage Pass'
ELSE 'Underage Fail'
END AS Result
FROM Students;
এখানে:
- আমরা
AgeএবংScoreকলামগুলির শর্ত অনুসারে ছাত্রদের ফলাফল নির্ধারণ করছি:- যদি
Age >= 18এবংScore >= 50হয়, তাহলেResultহবে 'Pass' - যদি
Age >= 18এবংScore < 50হয়, তাহলেResultহবে 'Fail' - যদি
Age < 18এবংScore >= 50হয়, তাহলেResultহবে 'Underage Pass' - অন্যথায়, 'Underage Fail' দেখাবে।
- যদি
৩. CASE এর ব্যবহার GROUP BY এর সাথে
CASE স্টেটমেন্ট সাধারণত GROUP BY এর সাথে ব্যবহার করা যায়, যাতে আপনি শর্তাবলী অনুসারে গ্রুপিং বা এগ্রিগেশন করতে পারেন।
উদাহরণ:
ধরা যাক, আপনার Orders টেবিল আছে যেখানে অর্ডারের Amount এবং Status রয়েছে, এবং আপনি অর্ডারের পরিমাণের ভিত্তিতে মোট বিক্রয়ের হিসাব করতে চান:
SELECT
CASE
WHEN Amount > 1000 THEN 'High Value'
WHEN Amount BETWEEN 500 AND 1000 THEN 'Medium Value'
ELSE 'Low Value'
END AS OrderValue,
SUM(Amount) AS TotalSales
FROM Orders
GROUP BY
CASE
WHEN Amount > 1000 THEN 'High Value'
WHEN Amount BETWEEN 500 AND 1000 THEN 'Medium Value'
ELSE 'Low Value'
END;
এখানে:
- আমরা
Amountঅনুসারে অর্ডারগুলিকে 'High Value', 'Medium Value', এবং 'Low Value' হিসাবে শ্রেণীবদ্ধ করছি এবং প্রতিটি শ্রেণীভুক্ত মানের জন্য মোট বিক্রয় (TotalSales) গণনা করছি।
৪. CASE স্টেটমেন্টে NULL মান ব্যবহার
CASE স্টেটমেন্টে NULL মানও পরীক্ষিত হতে পারে, যাতে আপনি NULL মানের জন্য আলাদা ফলাফল প্রদান করতে পারেন।
উদাহরণ:
SELECT Name,
Age,
CASE
WHEN Age IS NULL THEN 'Age not provided'
WHEN Age < 18 THEN 'Minor'
ELSE 'Adult'
END AS AgeStatus
FROM Students;
এখানে:
- যদি
Ageকলামে মান না থাকে (NULL), তাহলে 'Age not provided' দেখাবে। - যদি
Age18 বছরের কম হয়, তাহলে 'Minor' দেখাবে। - অন্যথায়, 'Adult' দেখাবে।
সারাংশ
SQL CASE স্টেটমেন্ট একটি শর্তাবলী বা কন্ডিশনাল লজিক যা SQL কোডে শর্ত অনুযায়ী মান নির্ধারণ করতে ব্যবহৃত হয়। এটি Simple CASE এবং Searched CASE দুইভাবে ব্যবহৃত হতে পারে:
- Simple CASE: একটি কলামের মানের ভিত্তিতে শর্ত পরীক্ষা।
- Searched CASE: একাধিক শর্ত পরীক্ষা এবং নির্দিষ্ট ফলাফল প্রদান।
CASE স্টেটমেন্টটি শর্তের ভিত্তিতে ফলাফল নির্ধারণ করতে সহায়তা করে এবং এটি SQL কুয়েরি, স্টোরড প্রসিডিউর, এবং ফাংশনে ব্যাপকভাবে ব্যবহৃত হয়।
SWITCH এবং IIF ফাংশন উভয়ই SQL Server এবং T-SQL এর মধ্যে ব্যবহার করা হয় শর্তাবলী যাচাই করার জন্য এবং বিভিন্ন শর্তের ভিত্তিতে বিভিন্ন ফলাফল প্রদান করতে। এগুলি সাধারণত জটিল শর্তযুক্ত কুয়েরি লেখার জন্য ব্যবহৃত হয়।
1. SWITCH ফাংশন
SWITCH ফাংশন একটি বহুমুখী শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি একাধিক শর্ত পরীক্ষা করে এবং প্রথম মেলে এমন শর্তের ফলাফল প্রদান করে। এটি সাধারণত CASE স্টেটমেন্টের একটি বিকল্প হিসেবে ব্যবহার করা হয়।
SWITCH ফাংশন SQL Server-এ সরাসরি উপলব্ধ নেই, তবে আমরা এটি CASE স্টেটমেন্টের সাহায্যে ব্যবহার করতে পারি, যেটি কার্যত SWITCH এর সমতুল্য।
SWITCH ফাংশনের সিনট্যাক্স:
SELECT SWITCH (
expression1 = value1, result1,
expression2 = value2, result2,
expression3 = value3, result3,
...
expressionN = valueN, resultN
);
তবে SQL Server-এ SWITCH ফাংশনের জন্য কোনও সরাসরি সমর্থন নেই, তাই আমরা CASE স্টেটমেন্ট ব্যবহার করি:
CASE (SWITCH এর সমতুল্য):
SELECT
CASE
WHEN Department = 'HR' THEN 'Human Resources'
WHEN Department = 'IT' THEN 'Information Technology'
WHEN Department = 'Finance' THEN 'Finance Department'
ELSE 'Other'
END AS DepartmentName
FROM Employees;
এটি Department কলামকে চেক করে এবং সংশ্লিষ্ট মানের ভিত্তিতে একটি প্রাসঙ্গিক নাম প্রদান করে।
2. IIF ফাংশন
IIF ফাংশন T-SQL এর মধ্যে একটি শর্তযুক্ত ফাংশন, যা IF এবং ELSE শর্তের মতো কাজ করে। IIF ফাংশনটি একটি শর্ত (condition) যাচাই করে এবং শর্তটি সঠিক হলে একটি ফলাফল প্রদান করে, অন্যথায় একটি ভিন্ন ফলাফল প্রদান করে।
IIF ফাংশনের সিনট্যাক্স:
IIF(condition, result_if_true, result_if_false)
- condition: শর্ত যা যাচাই করা হবে।
- result_if_true: যদি শর্তটি সত্য (TRUE) হয়, তবে এই মানটি প্রদান করা হবে।
- result_if_false: যদি শর্তটি মিথ্যা (FALSE) হয়, তবে এই মানটি প্রদান করা হবে।
IIF ফাংশনের উদাহরণ:
SELECT
FirstName,
LastName,
IIF(Salary > 50000, 'High Salary', 'Low Salary') AS SalaryStatus
FROM Employees;
এটি Salary কলামের মান যাচাই করে, যদি এটি ৫০,০০০ এর বেশি হয়, তাহলে "High Salary" রিটার্ন করবে, অন্যথায় "Low Salary" রিটার্ন করবে।
SWITCH এবং IIF এর মধ্যে পার্থক্য
- বহু শর্ত:
- SWITCH: একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং যেকোনো একটি শর্ত মিললে তার সংশ্লিষ্ট ফলাফল প্রদান করে।
- IIF: একক শর্ত পরীক্ষা করে, যেখানে শুধুমাত্র দুটি ফলাফল (একটি শর্ত পূর্ণ হলে একটি এবং না হলে অন্যটি) পাওয়া যায়।
- কোডের সহজতা:
- SWITCH: একাধিক শর্তের জন্য কাস্টম কুয়েরি তৈরি করা সহজ।
- IIF: একটি সহজ শর্ত যাচাই করার জন্য ভালো, তবে অনেক শর্তের জন্য ব্যবহার করা কঠিন হতে পারে।
সারাংশ
- SWITCH (CASE) ফাংশন একাধিক শর্ত যাচাই করে এবং প্রথমে মেলে এমন শর্তের ফলাফল প্রদান করে।
- IIF ফাংশন একটি একক শর্ত যাচাই করে এবং শর্তটি সত্য হলে একটি ফলাফল, আর মিথ্যা হলে অন্য একটি ফলাফল প্রদান করে।
এই দুটি ফাংশন SQL Server এবং T-SQL-এ শর্তাবলী নির্ধারণ করার জন্য ব্যবহার করা হয় এবং ডেটাবেসের মধ্যে আরও উন্নত শর্তযুক্ত কুয়েরি লেখার জন্য সহায়ক।
SQL-এ কন্ডিশনাল লজিক সাধারণত IF...ELSE বা CASE স্টেটমেন্টের মাধ্যমে ব্যবহৃত হয়। কন্ডিশনাল লজিক ব্যবহৃত হয় যখন আপনার বিভিন্ন শর্ত অনুযায়ী বিভিন্ন অ্যাকশন নিতে হয়।
এখানে IF...ELSE এবং CASE এর উদাহরণ দেওয়া হলো:
১. IF...ELSE কন্ডিশনাল লজিক
IF...ELSE স্টেটমেন্টটি কন্ডিশনাল লজিক প্রয়োগ করতে ব্যবহৃত হয়, যেখানে শর্তের ভিত্তিতে কোডের বিভিন্ন অংশ চালানো হয়।
উদাহরণ ১: IF...ELSE দিয়ে শর্ত পরীক্ষা করা
ধরা যাক, আপনার একটি Employees টেবিল আছে এবং আপনি একটি কর্মীকে Status আপডেট করতে চান, তার কর্মদক্ষতার ওপর ভিত্তি করে। যদি কর্মীর Salary 50,000 এর বেশি হয়, তাহলে তার স্ট্যাটাস 'Active' হবে, অন্যথায় 'Inactive' হবে।
DECLARE @Salary INT;
SET @Salary = 60000; -- কর্মীর সেলারি সেট করুন
IF @Salary > 50000
BEGIN
PRINT 'Employee is Active';
END
ELSE
BEGIN
PRINT 'Employee is Inactive';
END
এখানে, যদি @Salary 50,000 এর বেশি হয়, তাহলে 'Employee is Active' প্রিন্ট হবে। অন্যথায়, 'Employee is Inactive' প্রিন্ট হবে।
উদাহরণ ২: টেবিলের আপডেট করা IF...ELSE এর মাধ্যমে
ধরা যাক, আপনি Employees টেবিলের কর্মীদের Status আপডেট করতে চান, তাদের Salary এর ভিত্তিতে:
UPDATE Employees
SET Status =
CASE
WHEN Salary > 50000 THEN 'Active'
ELSE 'Inactive'
END
এখানে, Salary যদি 50,000 এর বেশি হয়, তাহলে Status কলামের মান 'Active' হবে, অন্যথায় 'Inactive' হবে।
২. CASE কন্ডিশনাল লজিক
CASE একটি SQL এক্সপ্রেশন যা একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং শর্তের ভিত্তিতে ভিন্ন মান প্রদান করে।
উদাহরণ ১: CASE দিয়ে মান পরিবর্তন
ধরা যাক, আপনার Employees টেবিলে Salary এর ভিত্তিতে কর্মীদের Grade নির্ধারণ করতে চান:
SELECT Name, Salary,
CASE
WHEN Salary > 80000 THEN 'A'
WHEN Salary BETWEEN 50000 AND 80000 THEN 'B'
ELSE 'C'
END AS Grade
FROM Employees;
এখানে, কর্মীর Salary এর ভিত্তিতে:
- যদি সেলারি 80,000 এর বেশি হয়, তাহলে Grade হবে
'A'। - যদি সেলারি 50,000 থেকে 80,000 এর মধ্যে হয়, তাহলে Grade হবে
'B'। - অন্যথায় Grade হবে
'C'।
উদাহরণ ২: CASE ব্যবহার করে ডেটা আপডেট করা
ধরা যাক, আপনি Employees টেবিলের Salary এর ভিত্তিতে Status আপডেট করতে চান:
UPDATE Employees
SET Status =
CASE
WHEN Salary > 80000 THEN 'Active'
WHEN Salary BETWEEN 50000 AND 80000 THEN 'Probation'
ELSE 'Inactive'
END
এখানে, কর্মীর Salary এর ভিত্তিতে:
- 80,000 এর বেশি সেলারি হলে Status হবে
'Active'। - 50,000 থেকে 80,000 এর মধ্যে সেলারি হলে Status হবে
'Probation'। - অন্যথায় Status হবে
'Inactive'।
সারাংশ
IF...ELSE: একক শর্তে সিদ্ধান্ত নেওয়ার জন্য ব্যবহৃত হয়। এটি সাধারণত ছোট স্কোপে কন্ডিশনাল লজিক প্রয়োগে ব্যবহৃত হয়।CASE: একাধিক শর্তের জন্য ব্যবহৃত হয় এবং এটি একটি এক্সপ্রেশন হিসেবে কাজ করে, যা টেবিলের সিলেক্ট বা আপডেট স্টেটমেন্টে ব্যবহার করা হয়।
এই কন্ডিশনাল লজিক আপনাকে SQL কোডের মধ্যে শর্তভিত্তিক সিদ্ধান্ত নিতে সাহায্য করে এবং ডেটাবেসের কার্যকারিতা আরো শক্তিশালী ও কাস্টমাইজড করে তোলে।
Read more